package com.ys.nms.module.business.dal.dataobject.storage;

import com.ys.nms.framework.mybatis.core.dataobject.BaseSlaveDO;
import com.ys.nms.framework.tenant.core.aop.TenantIgnore;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import com.ys.nms.framework.mybatis.core.dataobject.BaseDO;

/**
 * 存储表 DO
 *
 * @author zzy
 */
@TableName("storage")
@KeySequence("storage_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
public class StorageDO extends BaseSlaveDO {

    /**
     * ID
     */
    @TableId
    private Integer storageId;
    /**
     * 设备ID
     */
    private Integer deviceId;
    /**
     * 存储信息的 MIB 类型（如 HOST-RESOURCES-MIB	 或 UCD-SNMP-MIB	）
     */
    private String storageMib;
    /**
     * 存储在设备中的索引标识（如 SNMP 索引），用于区分不同存储单元。
     */
    private String storageIndex;
    /**
     * 存储类型（如 disk	、memory	、filesystem	）
     */
    private String storageType;
    /**
     * 存储的描述信息（如 "Hard Disk /dev/sda1" 或 "Memory Usage"）。
     */
    private String storageDescr;
    /**
     * 存储总容量（单位为 storage_units	 指定的单位，如字节）。
     */
    private Long storageSize;
    /**
     * 存储容量单位（如 1	 表示字节，1024	 表示 KB）。
     */
    private Integer storageUnits;
    /**
     * 当前已使用的存储容量（单位同上）。
     */
    private Long storageUsed;
    /**
     * 当前剩余可用存储容量（单位同上）。
     */
    private Long storageFree;
    /**
     * 存储使用率（百分比，整数形式，如 75	 表示 75%）。
     */
    private Integer storagePerc;
    /**
     * 存储使用率的告警阈值（默认 60%	），超过此值时触发告警。
     */
    private Integer storagePercWarn;
    /**
     * 是否标记为删除0	 表示未删除
     */
    private Boolean storageDeleted;


}
